/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

SubUser Management
SubUser Management API

OpenAPI spec version: v1
Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/

#import <Foundation/Foundation.h>
#import <JDCloudOCSDKIam/IamApiModel.h>


@implementation IamDescribeRolePoliciesRequest
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
keyword:(NSString*)keyword
sort:(NSNumber*)sort
roleName:(NSString*)roleName { 
    self.regionId = regionId;
    self.pageNumber = pageNumber;
    self.pageSize = pageSize;
    self.keyword = keyword;
    self.sort = sort;
    self.roleName = roleName;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
keyword:(NSString*)keyword
sort:(NSNumber*)sort
roleName:(NSString*)roleName { 
    self.regionId = regionId;
    self.version = version;
    self.pageNumber = pageNumber;
    self.pageSize = pageSize;
    self.keyword = keyword;
    self.sort = sort;
    self.roleName = roleName;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self pageNumber])
    {
        [result setValue:[self pageNumber] forKey:@"pageNumber"];
    }
    if([self pageSize])
    {
        [result setValue:[self pageSize] forKey:@"pageSize"];
    }
    if([self keyword])
    {
        [result setValue:[self keyword] forKey:@"keyword"];
    }
    if([self sort])
    {
        [result setValue:[self sort] forKey:@"sort"];
    }
    if([self roleName])
    {
        [result setValue:[self roleName] forKey:@"roleName"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.pageNumber = [dictionary objectForKey:@"pageNumber"];
    self.pageSize = [dictionary objectForKey:@"pageSize"];
    self.keyword = [dictionary objectForKey:@"keyword"];
    self.sort = [dictionary objectForKey:@"sort"];
    self.roleName = [dictionary objectForKey:@"roleName"];
    return self;
} 

@end
@implementation IamDescribeRoleRequest
-(id) initWithRegion:(NSString *)regionId
roleName:(NSString*)roleName { 
    self.regionId = regionId;
    self.roleName = roleName;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
roleName:(NSString*)roleName { 
    self.regionId = regionId;
    self.version = version;
    self.roleName = roleName;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self roleName])
    {
        [result setValue:[self roleName] forKey:@"roleName"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.roleName = [dictionary objectForKey:@"roleName"];
    return self;
} 

@end
@implementation IamAttachRolePolicyRequest
-(id) initWithRegion:(NSString *)regionId
policyName:(NSString*)policyName
roleName:(NSString*)roleName { 
    self.regionId = regionId;
    self.policyName = policyName;
    self.roleName = roleName;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
policyName:(NSString*)policyName
roleName:(NSString*)roleName { 
    self.regionId = regionId;
    self.version = version;
    self.policyName = policyName;
    self.roleName = roleName;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self policyName])
    {
        [result setValue:[self policyName] forKey:@"policyName"];
    }
    if([self roleName])
    {
        [result setValue:[self roleName] forKey:@"roleName"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.policyName = [dictionary objectForKey:@"policyName"];
    self.roleName = [dictionary objectForKey:@"roleName"];
    return self;
} 

@end
@implementation IamDeleteRoleRequest
-(id) initWithRegion:(NSString *)regionId
roleName:(NSString*)roleName { 
    self.regionId = regionId;
    self.roleName = roleName;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
roleName:(NSString*)roleName { 
    self.regionId = regionId;
    self.version = version;
    self.roleName = roleName;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self roleName])
    {
        [result setValue:[self roleName] forKey:@"roleName"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.roleName = [dictionary objectForKey:@"roleName"];
    return self;
} 

@end
@implementation IamDetachRolePolicyRequest
-(id) initWithRegion:(NSString *)regionId
policyName:(NSString*)policyName
roleName:(NSString*)roleName { 
    self.regionId = regionId;
    self.policyName = policyName;
    self.roleName = roleName;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
policyName:(NSString*)policyName
roleName:(NSString*)roleName { 
    self.regionId = regionId;
    self.version = version;
    self.policyName = policyName;
    self.roleName = roleName;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self policyName])
    {
        [result setValue:[self policyName] forKey:@"policyName"];
    }
    if([self roleName])
    {
        [result setValue:[self roleName] forKey:@"roleName"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.policyName = [dictionary objectForKey:@"policyName"];
    self.roleName = [dictionary objectForKey:@"roleName"];
    return self;
} 

@end
@implementation IamDescribeRolesRequest
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
roleName:(NSString*)roleName
type:(NSNumber*)type
sort:(NSNumber*)sort { 
    self.regionId = regionId;
    self.pageNumber = pageNumber;
    self.pageSize = pageSize;
    self.roleName = roleName;
    self.type = type;
    self.sort = sort;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
roleName:(NSString*)roleName
type:(NSNumber*)type
sort:(NSNumber*)sort { 
    self.regionId = regionId;
    self.version = version;
    self.pageNumber = pageNumber;
    self.pageSize = pageSize;
    self.roleName = roleName;
    self.type = type;
    self.sort = sort;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self pageNumber])
    {
        [result setValue:[self pageNumber] forKey:@"pageNumber"];
    }
    if([self pageSize])
    {
        [result setValue:[self pageSize] forKey:@"pageSize"];
    }
    if([self roleName])
    {
        [result setValue:[self roleName] forKey:@"roleName"];
    }
    if([self type])
    {
        [result setValue:[self type] forKey:@"type"];
    }
    if([self sort])
    {
        [result setValue:[self sort] forKey:@"sort"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.pageNumber = [dictionary objectForKey:@"pageNumber"];
    self.pageSize = [dictionary objectForKey:@"pageSize"];
    self.roleName = [dictionary objectForKey:@"roleName"];
    self.type = [dictionary objectForKey:@"type"];
    self.sort = [dictionary objectForKey:@"sort"];
    return self;
} 

@end
@implementation IamDeletePolicyRequest
-(id) initWithRegion:(NSString *)regionId
policyName:(NSString*)policyName { 
    self.regionId = regionId;
    self.policyName = policyName;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
policyName:(NSString*)policyName { 
    self.regionId = regionId;
    self.version = version;
    self.policyName = policyName;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self policyName])
    {
        [result setValue:[self policyName] forKey:@"policyName"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.policyName = [dictionary objectForKey:@"policyName"];
    return self;
} 

@end
@implementation IamDescribePolicyRequest
-(id) initWithRegion:(NSString *)regionId
policyName:(NSString*)policyName { 
    self.regionId = regionId;
    self.policyName = policyName;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
policyName:(NSString*)policyName { 
    self.regionId = regionId;
    self.version = version;
    self.policyName = policyName;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self policyName])
    {
        [result setValue:[self policyName] forKey:@"policyName"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.policyName = [dictionary objectForKey:@"policyName"];
    return self;
} 

@end
@implementation IamDescribePoliciesRequest
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
keyword:(NSString*)keyword
queryType:(NSNumber*)queryType
sort:(NSNumber*)sort { 
    self.regionId = regionId;
    self.pageNumber = pageNumber;
    self.pageSize = pageSize;
    self.keyword = keyword;
    self.queryType = queryType;
    self.sort = sort;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
keyword:(NSString*)keyword
queryType:(NSNumber*)queryType
sort:(NSNumber*)sort { 
    self.regionId = regionId;
    self.version = version;
    self.pageNumber = pageNumber;
    self.pageSize = pageSize;
    self.keyword = keyword;
    self.queryType = queryType;
    self.sort = sort;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self pageNumber])
    {
        [result setValue:[self pageNumber] forKey:@"pageNumber"];
    }
    if([self pageSize])
    {
        [result setValue:[self pageSize] forKey:@"pageSize"];
    }
    if([self keyword])
    {
        [result setValue:[self keyword] forKey:@"keyword"];
    }
    if([self queryType])
    {
        [result setValue:[self queryType] forKey:@"queryType"];
    }
    if([self sort])
    {
        [result setValue:[self sort] forKey:@"sort"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.pageNumber = [dictionary objectForKey:@"pageNumber"];
    self.pageSize = [dictionary objectForKey:@"pageSize"];
    self.keyword = [dictionary objectForKey:@"keyword"];
    self.queryType = [dictionary objectForKey:@"queryType"];
    self.sort = [dictionary objectForKey:@"sort"];
    return self;
} 

@end
@implementation IamDescribePermissionDetailRequest
-(id) initWithRegion:(NSString *)regionId
permissionId:(NSNumber*)permissionId { 
    self.regionId = regionId;
    self.permissionId = permissionId;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
permissionId:(NSNumber*)permissionId { 
    self.regionId = regionId;
    self.version = version;
    self.permissionId = permissionId;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self permissionId])
    {
        [result setValue:[self permissionId] forKey:@"permissionId"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.permissionId = [dictionary objectForKey:@"permissionId"];
    return self;
} 

@end
@implementation IamDescribePermissionsRequest
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
keyword:(NSString*)keyword
queryType:(NSNumber*)queryType { 
    self.regionId = regionId;
    self.pageNumber = pageNumber;
    self.pageSize = pageSize;
    self.keyword = keyword;
    self.queryType = queryType;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
keyword:(NSString*)keyword
queryType:(NSNumber*)queryType { 
    self.regionId = regionId;
    self.version = version;
    self.pageNumber = pageNumber;
    self.pageSize = pageSize;
    self.keyword = keyword;
    self.queryType = queryType;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self pageNumber])
    {
        [result setValue:[self pageNumber] forKey:@"pageNumber"];
    }
    if([self pageSize])
    {
        [result setValue:[self pageSize] forKey:@"pageSize"];
    }
    if([self keyword])
    {
        [result setValue:[self keyword] forKey:@"keyword"];
    }
    if([self queryType])
    {
        [result setValue:[self queryType] forKey:@"queryType"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.pageNumber = [dictionary objectForKey:@"pageNumber"];
    self.pageSize = [dictionary objectForKey:@"pageSize"];
    self.keyword = [dictionary objectForKey:@"keyword"];
    self.queryType = [dictionary objectForKey:@"queryType"];
    return self;
} 

@end
@implementation IamDescribeSubUserPermissionsRequest
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
subUser:(NSString*)subUser { 
    self.regionId = regionId;
    self.pageNumber = pageNumber;
    self.pageSize = pageSize;
    self.subUser = subUser;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
subUser:(NSString*)subUser { 
    self.regionId = regionId;
    self.version = version;
    self.pageNumber = pageNumber;
    self.pageSize = pageSize;
    self.subUser = subUser;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self pageNumber])
    {
        [result setValue:[self pageNumber] forKey:@"pageNumber"];
    }
    if([self pageSize])
    {
        [result setValue:[self pageSize] forKey:@"pageSize"];
    }
    if([self subUser])
    {
        [result setValue:[self subUser] forKey:@"subUser"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.pageNumber = [dictionary objectForKey:@"pageNumber"];
    self.pageSize = [dictionary objectForKey:@"pageSize"];
    self.subUser = [dictionary objectForKey:@"subUser"];
    return self;
} 

@end
@implementation IamRemovePermissionOfSubUserRequest
-(id) initWithRegion:(NSString *)regionId
permissionId:(NSNumber*)permissionId
subUser:(NSString*)subUser { 
    self.regionId = regionId;
    self.permissionId = permissionId;
    self.subUser = subUser;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
permissionId:(NSNumber*)permissionId
subUser:(NSString*)subUser { 
    self.regionId = regionId;
    self.version = version;
    self.permissionId = permissionId;
    self.subUser = subUser;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self permissionId])
    {
        [result setValue:[self permissionId] forKey:@"permissionId"];
    }
    if([self subUser])
    {
        [result setValue:[self subUser] forKey:@"subUser"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.permissionId = [dictionary objectForKey:@"permissionId"];
    self.subUser = [dictionary objectForKey:@"subUser"];
    return self;
} 

@end
@implementation IamDisableSubUserAccessKeyRequest
-(id) initWithRegion:(NSString *)regionId
subUser:(NSString*)subUser
accessKey:(NSString*)accessKey { 
    self.regionId = regionId;
    self.subUser = subUser;
    self.accessKey = accessKey;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subUser:(NSString*)subUser
accessKey:(NSString*)accessKey { 
    self.regionId = regionId;
    self.version = version;
    self.subUser = subUser;
    self.accessKey = accessKey;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self subUser])
    {
        [result setValue:[self subUser] forKey:@"subUser"];
    }
    if([self accessKey])
    {
        [result setValue:[self accessKey] forKey:@"accessKey"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.subUser = [dictionary objectForKey:@"subUser"];
    self.accessKey = [dictionary objectForKey:@"accessKey"];
    return self;
} 

@end
@implementation IamDeleteSubUserAccessKeyRequest
-(id) initWithRegion:(NSString *)regionId
subUser:(NSString*)subUser
accessKey:(NSString*)accessKey { 
    self.regionId = regionId;
    self.subUser = subUser;
    self.accessKey = accessKey;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subUser:(NSString*)subUser
accessKey:(NSString*)accessKey { 
    self.regionId = regionId;
    self.version = version;
    self.subUser = subUser;
    self.accessKey = accessKey;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self subUser])
    {
        [result setValue:[self subUser] forKey:@"subUser"];
    }
    if([self accessKey])
    {
        [result setValue:[self accessKey] forKey:@"accessKey"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.subUser = [dictionary objectForKey:@"subUser"];
    self.accessKey = [dictionary objectForKey:@"accessKey"];
    return self;
} 

@end
@implementation IamEnableSubUserAccessKeyRequest
-(id) initWithRegion:(NSString *)regionId
subUser:(NSString*)subUser
accessKey:(NSString*)accessKey { 
    self.regionId = regionId;
    self.subUser = subUser;
    self.accessKey = accessKey;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subUser:(NSString*)subUser
accessKey:(NSString*)accessKey { 
    self.regionId = regionId;
    self.version = version;
    self.subUser = subUser;
    self.accessKey = accessKey;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self subUser])
    {
        [result setValue:[self subUser] forKey:@"subUser"];
    }
    if([self accessKey])
    {
        [result setValue:[self accessKey] forKey:@"accessKey"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.subUser = [dictionary objectForKey:@"subUser"];
    self.accessKey = [dictionary objectForKey:@"accessKey"];
    return self;
} 

@end
@implementation IamEnabledUserAccessKeyRequest
-(id) initWithRegion:(NSString *)regionId
accessKey:(NSString*)accessKey { 
    self.regionId = regionId;
    self.accessKey = accessKey;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
accessKey:(NSString*)accessKey { 
    self.regionId = regionId;
    self.version = version;
    self.accessKey = accessKey;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self accessKey])
    {
        [result setValue:[self accessKey] forKey:@"accessKey"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.accessKey = [dictionary objectForKey:@"accessKey"];
    return self;
} 

@end
@implementation IamDisabledUserAccessKeyRequest
-(id) initWithRegion:(NSString *)regionId
accessKey:(NSString*)accessKey { 
    self.regionId = regionId;
    self.accessKey = accessKey;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
accessKey:(NSString*)accessKey { 
    self.regionId = regionId;
    self.version = version;
    self.accessKey = accessKey;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self accessKey])
    {
        [result setValue:[self accessKey] forKey:@"accessKey"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.accessKey = [dictionary objectForKey:@"accessKey"];
    return self;
} 

@end
@implementation IamDeleteUserAccessKeyRequest
-(id) initWithRegion:(NSString *)regionId
accessKey:(NSString*)accessKey { 
    self.regionId = regionId;
    self.accessKey = accessKey;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
accessKey:(NSString*)accessKey { 
    self.regionId = regionId;
    self.version = version;
    self.accessKey = accessKey;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self accessKey])
    {
        [result setValue:[self accessKey] forKey:@"accessKey"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.accessKey = [dictionary objectForKey:@"accessKey"];
    return self;
} 

@end
@implementation IamRemoveSubUserFromGroupRequest
-(id) initWithRegion:(NSString *)regionId
subUser:(NSString*)subUser
groupName:(NSString*)groupName { 
    self.regionId = regionId;
    self.subUser = subUser;
    self.groupName = groupName;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subUser:(NSString*)subUser
groupName:(NSString*)groupName { 
    self.regionId = regionId;
    self.version = version;
    self.subUser = subUser;
    self.groupName = groupName;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self subUser])
    {
        [result setValue:[self subUser] forKey:@"subUser"];
    }
    if([self groupName])
    {
        [result setValue:[self groupName] forKey:@"groupName"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.subUser = [dictionary objectForKey:@"subUser"];
    self.groupName = [dictionary objectForKey:@"groupName"];
    return self;
} 

@end
@implementation IamAddSubUserToGroupRequest
-(id) initWithRegion:(NSString *)regionId
subUser:(NSString*)subUser
groupName:(NSString*)groupName { 
    self.regionId = regionId;
    self.subUser = subUser;
    self.groupName = groupName;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subUser:(NSString*)subUser
groupName:(NSString*)groupName { 
    self.regionId = regionId;
    self.version = version;
    self.subUser = subUser;
    self.groupName = groupName;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self subUser])
    {
        [result setValue:[self subUser] forKey:@"subUser"];
    }
    if([self groupName])
    {
        [result setValue:[self groupName] forKey:@"groupName"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.subUser = [dictionary objectForKey:@"subUser"];
    self.groupName = [dictionary objectForKey:@"groupName"];
    return self;
} 

@end
@implementation IamDescribeGroupRequest
-(id) initWithRegion:(NSString *)regionId
groupName:(NSString*)groupName { 
    self.regionId = regionId;
    self.groupName = groupName;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
groupName:(NSString*)groupName { 
    self.regionId = regionId;
    self.version = version;
    self.groupName = groupName;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self groupName])
    {
        [result setValue:[self groupName] forKey:@"groupName"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.groupName = [dictionary objectForKey:@"groupName"];
    return self;
} 

@end
@implementation IamAttachGroupPolicyRequest
-(id) initWithRegion:(NSString *)regionId
policyName:(NSString*)policyName
groupName:(NSString*)groupName { 
    self.regionId = regionId;
    self.policyName = policyName;
    self.groupName = groupName;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
policyName:(NSString*)policyName
groupName:(NSString*)groupName { 
    self.regionId = regionId;
    self.version = version;
    self.policyName = policyName;
    self.groupName = groupName;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self policyName])
    {
        [result setValue:[self policyName] forKey:@"policyName"];
    }
    if([self groupName])
    {
        [result setValue:[self groupName] forKey:@"groupName"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.policyName = [dictionary objectForKey:@"policyName"];
    self.groupName = [dictionary objectForKey:@"groupName"];
    return self;
} 

@end
@implementation IamDescribeGroupsRequest
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
keyword:(NSString*)keyword
sort:(NSNumber*)sort { 
    self.regionId = regionId;
    self.pageNumber = pageNumber;
    self.pageSize = pageSize;
    self.keyword = keyword;
    self.sort = sort;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
keyword:(NSString*)keyword
sort:(NSNumber*)sort { 
    self.regionId = regionId;
    self.version = version;
    self.pageNumber = pageNumber;
    self.pageSize = pageSize;
    self.keyword = keyword;
    self.sort = sort;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self pageNumber])
    {
        [result setValue:[self pageNumber] forKey:@"pageNumber"];
    }
    if([self pageSize])
    {
        [result setValue:[self pageSize] forKey:@"pageSize"];
    }
    if([self keyword])
    {
        [result setValue:[self keyword] forKey:@"keyword"];
    }
    if([self sort])
    {
        [result setValue:[self sort] forKey:@"sort"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.pageNumber = [dictionary objectForKey:@"pageNumber"];
    self.pageSize = [dictionary objectForKey:@"pageSize"];
    self.keyword = [dictionary objectForKey:@"keyword"];
    self.sort = [dictionary objectForKey:@"sort"];
    return self;
} 

@end
@implementation IamDescribeAttachedGroupPoliciesRequest
-(id) initWithRegion:(NSString *)regionId
groupName:(NSString*)groupName { 
    self.regionId = regionId;
    self.groupName = groupName;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
groupName:(NSString*)groupName { 
    self.regionId = regionId;
    self.version = version;
    self.groupName = groupName;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self groupName])
    {
        [result setValue:[self groupName] forKey:@"groupName"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.groupName = [dictionary objectForKey:@"groupName"];
    return self;
} 

@end
@implementation IamDescribeGroupSubUsersRequest
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
groupName:(NSString*)groupName { 
    self.regionId = regionId;
    self.pageNumber = pageNumber;
    self.pageSize = pageSize;
    self.groupName = groupName;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
groupName:(NSString*)groupName { 
    self.regionId = regionId;
    self.version = version;
    self.pageNumber = pageNumber;
    self.pageSize = pageSize;
    self.groupName = groupName;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self pageNumber])
    {
        [result setValue:[self pageNumber] forKey:@"pageNumber"];
    }
    if([self pageSize])
    {
        [result setValue:[self pageSize] forKey:@"pageSize"];
    }
    if([self groupName])
    {
        [result setValue:[self groupName] forKey:@"groupName"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.pageNumber = [dictionary objectForKey:@"pageNumber"];
    self.pageSize = [dictionary objectForKey:@"pageSize"];
    self.groupName = [dictionary objectForKey:@"groupName"];
    return self;
} 

@end
@implementation IamDetachGroupPolicyRequest
-(id) initWithRegion:(NSString *)regionId
policyName:(NSString*)policyName
groupName:(NSString*)groupName { 
    self.regionId = regionId;
    self.policyName = policyName;
    self.groupName = groupName;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
policyName:(NSString*)policyName
groupName:(NSString*)groupName { 
    self.regionId = regionId;
    self.version = version;
    self.policyName = policyName;
    self.groupName = groupName;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self policyName])
    {
        [result setValue:[self policyName] forKey:@"policyName"];
    }
    if([self groupName])
    {
        [result setValue:[self groupName] forKey:@"groupName"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.policyName = [dictionary objectForKey:@"policyName"];
    self.groupName = [dictionary objectForKey:@"groupName"];
    return self;
} 

@end
@implementation IamDeleteGroupRequest
-(id) initWithRegion:(NSString *)regionId
groupName:(NSString*)groupName { 
    self.regionId = regionId;
    self.groupName = groupName;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
groupName:(NSString*)groupName { 
    self.regionId = regionId;
    self.version = version;
    self.groupName = groupName;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self groupName])
    {
        [result setValue:[self groupName] forKey:@"groupName"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.groupName = [dictionary objectForKey:@"groupName"];
    return self;
} 

@end
@implementation IamAttachSubUserPolicyRequest
-(id) initWithRegion:(NSString *)regionId
policyName:(NSString*)policyName
subUser:(NSString*)subUser { 
    self.regionId = regionId;
    self.policyName = policyName;
    self.subUser = subUser;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
policyName:(NSString*)policyName
subUser:(NSString*)subUser { 
    self.regionId = regionId;
    self.version = version;
    self.policyName = policyName;
    self.subUser = subUser;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self policyName])
    {
        [result setValue:[self policyName] forKey:@"policyName"];
    }
    if([self subUser])
    {
        [result setValue:[self subUser] forKey:@"subUser"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.policyName = [dictionary objectForKey:@"policyName"];
    self.subUser = [dictionary objectForKey:@"subUser"];
    return self;
} 

@end
@implementation IamDescribeSubUsersRequest
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
keyword:(NSString*)keyword
sort:(NSNumber*)sort { 
    self.regionId = regionId;
    self.pageNumber = pageNumber;
    self.pageSize = pageSize;
    self.keyword = keyword;
    self.sort = sort;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
keyword:(NSString*)keyword
sort:(NSNumber*)sort { 
    self.regionId = regionId;
    self.version = version;
    self.pageNumber = pageNumber;
    self.pageSize = pageSize;
    self.keyword = keyword;
    self.sort = sort;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self pageNumber])
    {
        [result setValue:[self pageNumber] forKey:@"pageNumber"];
    }
    if([self pageSize])
    {
        [result setValue:[self pageSize] forKey:@"pageSize"];
    }
    if([self keyword])
    {
        [result setValue:[self keyword] forKey:@"keyword"];
    }
    if([self sort])
    {
        [result setValue:[self sort] forKey:@"sort"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.pageNumber = [dictionary objectForKey:@"pageNumber"];
    self.pageSize = [dictionary objectForKey:@"pageSize"];
    self.keyword = [dictionary objectForKey:@"keyword"];
    self.sort = [dictionary objectForKey:@"sort"];
    return self;
} 

@end
@implementation IamDescribeSubUserRequest
-(id) initWithRegion:(NSString *)regionId
subUser:(NSString*)subUser { 
    self.regionId = regionId;
    self.subUser = subUser;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subUser:(NSString*)subUser { 
    self.regionId = regionId;
    self.version = version;
    self.subUser = subUser;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self subUser])
    {
        [result setValue:[self subUser] forKey:@"subUser"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.subUser = [dictionary objectForKey:@"subUser"];
    return self;
} 

@end
@implementation IamDescribeAttachedSubUserPoliciesRequest
-(id) initWithRegion:(NSString *)regionId
subUser:(NSString*)subUser { 
    self.regionId = regionId;
    self.subUser = subUser;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subUser:(NSString*)subUser { 
    self.regionId = regionId;
    self.version = version;
    self.subUser = subUser;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self subUser])
    {
        [result setValue:[self subUser] forKey:@"subUser"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.subUser = [dictionary objectForKey:@"subUser"];
    return self;
} 

@end
@implementation IamDetachSubUserPolicyRequest
-(id) initWithRegion:(NSString *)regionId
policyName:(NSString*)policyName
subUser:(NSString*)subUser { 
    self.regionId = regionId;
    self.policyName = policyName;
    self.subUser = subUser;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
policyName:(NSString*)policyName
subUser:(NSString*)subUser { 
    self.regionId = regionId;
    self.version = version;
    self.policyName = policyName;
    self.subUser = subUser;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self policyName])
    {
        [result setValue:[self policyName] forKey:@"policyName"];
    }
    if([self subUser])
    {
        [result setValue:[self subUser] forKey:@"subUser"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.policyName = [dictionary objectForKey:@"policyName"];
    self.subUser = [dictionary objectForKey:@"subUser"];
    return self;
} 

@end
@implementation IamDeleteSubUserRequest
-(id) initWithRegion:(NSString *)regionId
subUser:(NSString*)subUser { 
    self.regionId = regionId;
    self.subUser = subUser;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subUser:(NSString*)subUser { 
    self.regionId = regionId;
    self.version = version;
    self.subUser = subUser;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self subUser])
    {
        [result setValue:[self subUser] forKey:@"subUser"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.subUser = [dictionary objectForKey:@"subUser"];
    return self;
} 

@end
@implementation IamDescribeSubUserGroupsRequest
-(id) initWithRegion:(NSString *)regionId
subUser:(NSString*)subUser { 
    self.regionId = regionId;
    self.subUser = subUser;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
subUser:(NSString*)subUser { 
    self.regionId = regionId;
    self.version = version;
    self.subUser = subUser;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self subUser])
    {
        [result setValue:[self subUser] forKey:@"subUser"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.subUser = [dictionary objectForKey:@"subUser"];
    return self;
} 

@end
@implementation IamCreateRoleResult
-(id) initWithRoleInfo:(RoleInfo*) roleInfo { 
    self.roleInfo = roleInfo;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self roleInfo])
    {
        [result setValue:[[self roleInfo] dictionary]forKey:@"roleInfo"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.roleInfo = [[RoleInfo alloc]initWithDic:[dictionary objectForKey:@"roleInfo"]];
    return self;
} 

@end
@implementation IamAttachRolePolicyResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation IamAttachRolePolicyResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamAttachRolePolicyResult* result = [[IamAttachRolePolicyResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamAttachRolePolicyResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamDetachRolePolicyResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation IamDetachRolePolicyResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDetachRolePolicyResult* result = [[IamDetachRolePolicyResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDetachRolePolicyResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamUpdateAssumeRolePolicyResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation IamUpdateAssumeRolePolicyResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamUpdateAssumeRolePolicyResult* result = [[IamUpdateAssumeRolePolicyResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamUpdateAssumeRolePolicyResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
  
@implementation IamCreateRoleResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamCreateRoleResult* result = [[IamCreateRoleResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamCreateRoleResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamDescribeRolePoliciesResult
-(id) initWithTotal:(NSNumber*) total
        policies:(NSArray<RolePolicy*>*)policies { 
    self.total = total;               
    self.policies = policies;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self total])
    {
        [result setValue:[self total] forKey:@"total"];
    }
    if([self policies])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self policies] count]; i++) {
            RolePolicy* item = [[self policies] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"policies"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.total = [dictionary objectForKey:@"total"];
    NSArray* policiesArray = [dictionary objectForKey:@"policies"];
    if(policiesArray&&![policiesArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [policiesArray count];i++)
        {
        RolePolicy* item = [[RolePolicy alloc]initWithDic:[policiesArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.policies = propertyArray;
    }
    return self;
} 

@end
  
@implementation IamDescribeRolePoliciesResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDescribeRolePoliciesResult* result = [[IamDescribeRolePoliciesResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDescribeRolePoliciesResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamDescribeRoleResult
-(id) initWithRoleInfo:(RoleInfo*) roleInfo { 
    self.roleInfo = roleInfo;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self roleInfo])
    {
        [result setValue:[[self roleInfo] dictionary]forKey:@"roleInfo"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.roleInfo = [[RoleInfo alloc]initWithDic:[dictionary objectForKey:@"roleInfo"]];
    return self;
} 

@end
  
@implementation IamDescribeRoleResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDescribeRoleResult* result = [[IamDescribeRoleResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDescribeRoleResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamCreateRoleRequest
-(id) initWithRegion:(NSString *)regionId
createRoleInfo:(CreateRoleInfo*)createRoleInfo { 
    self.regionId = regionId;
    self.createRoleInfo = createRoleInfo;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
createRoleInfo:(CreateRoleInfo*)createRoleInfo { 
    self.regionId = regionId;
    self.version = version;
    self.createRoleInfo = createRoleInfo;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self createRoleInfo])
    {
        [result setValue:[[self createRoleInfo] dictionary]forKey:@"createRoleInfo"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.createRoleInfo = [[CreateRoleInfo alloc]initWithDic:[dictionary objectForKey:@"createRoleInfo"]];
    return self;
} 

@end
@implementation IamDeleteRoleResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation IamDeleteRoleResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDeleteRoleResult* result = [[IamDeleteRoleResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDeleteRoleResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamDescribeRolesResult
-(id) initWithTotal:(NSNumber*) total
        roles:(NSArray<ListRoleInfo*>*)roles { 
    self.total = total;               
    self.roles = roles;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self total])
    {
        [result setValue:[self total] forKey:@"total"];
    }
    if([self roles])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self roles] count]; i++) {
            ListRoleInfo* item = [[self roles] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"roles"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.total = [dictionary objectForKey:@"total"];
    NSArray* rolesArray = [dictionary objectForKey:@"roles"];
    if(rolesArray&&![rolesArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [rolesArray count];i++)
        {
        ListRoleInfo* item = [[ListRoleInfo alloc]initWithDic:[rolesArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.roles = propertyArray;
    }
    return self;
} 

@end
  
@implementation IamDescribeRolesResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDescribeRolesResult* result = [[IamDescribeRolesResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDescribeRolesResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamUpdateAssumeRolePolicyRequest
-(id) initWithRegion:(NSString *)regionId
updateAssumeRolePolicyInfo:(UpdateAssumeRolePolicyInfo*)updateAssumeRolePolicyInfo
roleName:(NSString*)roleName { 
    self.regionId = regionId;
    self.updateAssumeRolePolicyInfo = updateAssumeRolePolicyInfo;
    self.roleName = roleName;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
updateAssumeRolePolicyInfo:(UpdateAssumeRolePolicyInfo*)updateAssumeRolePolicyInfo
roleName:(NSString*)roleName { 
    self.regionId = regionId;
    self.version = version;
    self.updateAssumeRolePolicyInfo = updateAssumeRolePolicyInfo;
    self.roleName = roleName;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self updateAssumeRolePolicyInfo])
    {
        [result setValue:[[self updateAssumeRolePolicyInfo] dictionary]forKey:@"updateAssumeRolePolicyInfo"];
    }
    if([self roleName])
    {
        [result setValue:[self roleName] forKey:@"roleName"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.updateAssumeRolePolicyInfo = [[UpdateAssumeRolePolicyInfo alloc]initWithDic:[dictionary objectForKey:@"updateAssumeRolePolicyInfo"]];
    self.roleName = [dictionary objectForKey:@"roleName"];
    return self;
} 

@end
@implementation IamCreatePolicyRequest
-(id) initWithRegion:(NSString *)regionId
createPolicyInfo:(CreatePolicyInfo*)createPolicyInfo { 
    self.regionId = regionId;
    self.createPolicyInfo = createPolicyInfo;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
createPolicyInfo:(CreatePolicyInfo*)createPolicyInfo { 
    self.regionId = regionId;
    self.version = version;
    self.createPolicyInfo = createPolicyInfo;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self createPolicyInfo])
    {
        [result setValue:[[self createPolicyInfo] dictionary]forKey:@"createPolicyInfo"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.createPolicyInfo = [[CreatePolicyInfo alloc]initWithDic:[dictionary objectForKey:@"createPolicyInfo"]];
    return self;
} 

@end
@implementation IamDeletePolicyResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
@implementation IamCreatePolicyResult
-(id) initWithPolicy:(Policy*) policy { 
    self.policy = policy;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self policy])
    {
        [result setValue:[[self policy] dictionary]forKey:@"policy"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.policy = [[Policy alloc]initWithDic:[dictionary objectForKey:@"policy"]];
    return self;
} 

@end
@implementation IamDescribePolicyResult
-(id) initWithPolicy:(PolicyDetail*) policy { 
    self.policy = policy;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self policy])
    {
        [result setValue:[[self policy] dictionary]forKey:@"policy"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.policy = [[PolicyDetail alloc]initWithDic:[dictionary objectForKey:@"policy"]];
    return self;
} 

@end
  
@implementation IamDescribePolicyResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDescribePolicyResult* result = [[IamDescribePolicyResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDescribePolicyResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
  
@implementation IamDeletePolicyResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDeletePolicyResult* result = [[IamDeletePolicyResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDeletePolicyResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamDescribePoliciesResult
-(id) initWithTotal:(NSNumber*) total
        policies:(NSArray<Policy*>*)policies { 
    self.total = total;               
    self.policies = policies;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self total])
    {
        [result setValue:[self total] forKey:@"total"];
    }
    if([self policies])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self policies] count]; i++) {
            Policy* item = [[self policies] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"policies"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.total = [dictionary objectForKey:@"total"];
    NSArray* policiesArray = [dictionary objectForKey:@"policies"];
    if(policiesArray&&![policiesArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [policiesArray count];i++)
        {
        Policy* item = [[Policy alloc]initWithDic:[policiesArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.policies = propertyArray;
    }
    return self;
} 

@end
  
@implementation IamDescribePoliciesResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDescribePoliciesResult* result = [[IamDescribePoliciesResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDescribePoliciesResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamUpdatePolicyResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
@implementation IamUpdatePolicyDescriptionRequest
-(id) initWithRegion:(NSString *)regionId
updatePolicyDescriptionInfo:(UpdatePolicyDescriptionInfo*)updatePolicyDescriptionInfo
policyName:(NSString*)policyName { 
    self.regionId = regionId;
    self.updatePolicyDescriptionInfo = updatePolicyDescriptionInfo;
    self.policyName = policyName;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
updatePolicyDescriptionInfo:(UpdatePolicyDescriptionInfo*)updatePolicyDescriptionInfo
policyName:(NSString*)policyName { 
    self.regionId = regionId;
    self.version = version;
    self.updatePolicyDescriptionInfo = updatePolicyDescriptionInfo;
    self.policyName = policyName;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self updatePolicyDescriptionInfo])
    {
        [result setValue:[[self updatePolicyDescriptionInfo] dictionary]forKey:@"updatePolicyDescriptionInfo"];
    }
    if([self policyName])
    {
        [result setValue:[self policyName] forKey:@"policyName"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.updatePolicyDescriptionInfo = [[UpdatePolicyDescriptionInfo alloc]initWithDic:[dictionary objectForKey:@"updatePolicyDescriptionInfo"]];
    self.policyName = [dictionary objectForKey:@"policyName"];
    return self;
} 

@end
@implementation IamUpdatePolicyRequest
-(id) initWithRegion:(NSString *)regionId
updatePolicyInfo:(UpdatePolicyInfo*)updatePolicyInfo
policyName:(NSString*)policyName { 
    self.regionId = regionId;
    self.updatePolicyInfo = updatePolicyInfo;
    self.policyName = policyName;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
updatePolicyInfo:(UpdatePolicyInfo*)updatePolicyInfo
policyName:(NSString*)policyName { 
    self.regionId = regionId;
    self.version = version;
    self.updatePolicyInfo = updatePolicyInfo;
    self.policyName = policyName;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self updatePolicyInfo])
    {
        [result setValue:[[self updatePolicyInfo] dictionary]forKey:@"updatePolicyInfo"];
    }
    if([self policyName])
    {
        [result setValue:[self policyName] forKey:@"policyName"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.updatePolicyInfo = [[UpdatePolicyInfo alloc]initWithDic:[dictionary objectForKey:@"updatePolicyInfo"]];
    self.policyName = [dictionary objectForKey:@"policyName"];
    return self;
} 

@end
@implementation IamUpdatePolicyDescriptionResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation IamUpdatePolicyDescriptionResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamUpdatePolicyDescriptionResult* result = [[IamUpdatePolicyDescriptionResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamUpdatePolicyDescriptionResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
  
@implementation IamUpdatePolicyResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamUpdatePolicyResult* result = [[IamUpdatePolicyResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamUpdatePolicyResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
  
@implementation IamCreatePolicyResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamCreatePolicyResult* result = [[IamCreatePolicyResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamCreatePolicyResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamRemovePermissionOfSubUserResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation IamRemovePermissionOfSubUserResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamRemovePermissionOfSubUserResult* result = [[IamRemovePermissionOfSubUserResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamRemovePermissionOfSubUserResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamDescribePermissionDetailResult
-(id) initWithPermission:(Permission*) permission { 
    self.permission = permission;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self permission])
    {
        [result setValue:[[self permission] dictionary]forKey:@"permission"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.permission = [[Permission alloc]initWithDic:[dictionary objectForKey:@"permission"]];
    return self;
} 

@end
  
@implementation IamDescribePermissionDetailResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDescribePermissionDetailResult* result = [[IamDescribePermissionDetailResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDescribePermissionDetailResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamUpdatePermissionRequest
-(id) initWithRegion:(NSString *)regionId
updatePermissionInfo:(UpdatePermissionInfo*)updatePermissionInfo
permissionId:(NSNumber*)permissionId { 
    self.regionId = regionId;
    self.updatePermissionInfo = updatePermissionInfo;
    self.permissionId = permissionId;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
updatePermissionInfo:(UpdatePermissionInfo*)updatePermissionInfo
permissionId:(NSNumber*)permissionId { 
    self.regionId = regionId;
    self.version = version;
    self.updatePermissionInfo = updatePermissionInfo;
    self.permissionId = permissionId;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self updatePermissionInfo])
    {
        [result setValue:[[self updatePermissionInfo] dictionary]forKey:@"updatePermissionInfo"];
    }
    if([self permissionId])
    {
        [result setValue:[self permissionId] forKey:@"permissionId"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.updatePermissionInfo = [[UpdatePermissionInfo alloc]initWithDic:[dictionary objectForKey:@"updatePermissionInfo"]];
    self.permissionId = [dictionary objectForKey:@"permissionId"];
    return self;
} 

@end
@implementation IamUpdatePermissionResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation IamUpdatePermissionResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamUpdatePermissionResult* result = [[IamUpdatePermissionResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamUpdatePermissionResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamCreatePermissionResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation IamCreatePermissionResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamCreatePermissionResult* result = [[IamCreatePermissionResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamCreatePermissionResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamDescribePermissionsResult
-(id) initWithTotal:(NSNumber*) total
        permissions:(NSArray<Permission*>*)permissions { 
    self.total = total;               
    self.permissions = permissions;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self total])
    {
        [result setValue:[self total] forKey:@"total"];
    }
    if([self permissions])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self permissions] count]; i++) {
            Permission* item = [[self permissions] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"permissions"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.total = [dictionary objectForKey:@"total"];
    NSArray* permissionsArray = [dictionary objectForKey:@"permissions"];
    if(permissionsArray&&![permissionsArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [permissionsArray count];i++)
        {
        Permission* item = [[Permission alloc]initWithDic:[permissionsArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.permissions = propertyArray;
    }
    return self;
} 

@end
@implementation IamDescribeSubUserPermissionsResult
-(id) initWithTotal:(NSNumber*) total
        permissions:(NSArray<Permission*>*)permissions { 
    self.total = total;               
    self.permissions = permissions;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self total])
    {
        [result setValue:[self total] forKey:@"total"];
    }
    if([self permissions])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self permissions] count]; i++) {
            Permission* item = [[self permissions] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"permissions"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.total = [dictionary objectForKey:@"total"];
    NSArray* permissionsArray = [dictionary objectForKey:@"permissions"];
    if(permissionsArray&&![permissionsArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [permissionsArray count];i++)
        {
        Permission* item = [[Permission alloc]initWithDic:[permissionsArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.permissions = propertyArray;
    }
    return self;
} 

@end
  
@implementation IamDescribeSubUserPermissionsResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDescribeSubUserPermissionsResult* result = [[IamDescribeSubUserPermissionsResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDescribeSubUserPermissionsResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamAddPermissionsToSubUserRequest
-(id) initWithRegion:(NSString *)regionId
addPermissionsInfo:(AddPermissionsInfo*)addPermissionsInfo
subUser:(NSString*)subUser { 
    self.regionId = regionId;
    self.addPermissionsInfo = addPermissionsInfo;
    self.subUser = subUser;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
addPermissionsInfo:(AddPermissionsInfo*)addPermissionsInfo
subUser:(NSString*)subUser { 
    self.regionId = regionId;
    self.version = version;
    self.addPermissionsInfo = addPermissionsInfo;
    self.subUser = subUser;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self addPermissionsInfo])
    {
        [result setValue:[[self addPermissionsInfo] dictionary]forKey:@"addPermissionsInfo"];
    }
    if([self subUser])
    {
        [result setValue:[self subUser] forKey:@"subUser"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.addPermissionsInfo = [[AddPermissionsInfo alloc]initWithDic:[dictionary objectForKey:@"addPermissionsInfo"]];
    self.subUser = [dictionary objectForKey:@"subUser"];
    return self;
} 

@end
@implementation IamAddPermissionsToSubUserResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation IamAddPermissionsToSubUserResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamAddPermissionsToSubUserResult* result = [[IamAddPermissionsToSubUserResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamAddPermissionsToSubUserResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamCreatePermissionRequest
-(id) initWithRegion:(NSString *)regionId
createPermissionInfo:(CreatePermissionInfo*)createPermissionInfo { 
    self.regionId = regionId;
    self.createPermissionInfo = createPermissionInfo;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
createPermissionInfo:(CreatePermissionInfo*)createPermissionInfo { 
    self.regionId = regionId;
    self.version = version;
    self.createPermissionInfo = createPermissionInfo;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self createPermissionInfo])
    {
        [result setValue:[[self createPermissionInfo] dictionary]forKey:@"createPermissionInfo"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.createPermissionInfo = [[CreatePermissionInfo alloc]initWithDic:[dictionary objectForKey:@"createPermissionInfo"]];
    return self;
} 

@end
  
@implementation IamDescribePermissionsResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDescribePermissionsResult* result = [[IamDescribePermissionsResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDescribePermissionsResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamDisableSubUserAccessKeyResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation IamDisableSubUserAccessKeyResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDisableSubUserAccessKeyResult* result = [[IamDisableSubUserAccessKeyResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDisableSubUserAccessKeyResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamEnableSubUserAccessKeyResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation IamEnableSubUserAccessKeyResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamEnableSubUserAccessKeyResult* result = [[IamEnableSubUserAccessKeyResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamEnableSubUserAccessKeyResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamDeleteSubUserAccessKeyResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation IamDeleteSubUserAccessKeyResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDeleteSubUserAccessKeyResult* result = [[IamDeleteSubUserAccessKeyResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDeleteSubUserAccessKeyResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamDescribeUserAccessKeysRequest
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
@implementation IamDisabledUserAccessKeyResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
@implementation IamCreateUserAccessKeyResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation IamCreateUserAccessKeyResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamCreateUserAccessKeyResult* result = [[IamCreateUserAccessKeyResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamCreateUserAccessKeyResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamEnabledUserAccessKeyResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
@implementation IamCreateUserAccessKeyRequest
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation IamDisabledUserAccessKeyResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDisabledUserAccessKeyResult* result = [[IamDisabledUserAccessKeyResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDisabledUserAccessKeyResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamDescribeUserAccessKeysResult
-(id) initWithUserAccessKeys:(NSArray<UserAccessKey*>*) userAccessKeys { 
    self.userAccessKeys = userAccessKeys;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self userAccessKeys])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self userAccessKeys] count]; i++) {
            UserAccessKey* item = [[self userAccessKeys] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"userAccessKeys"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    NSArray* userAccessKeysArray = [dictionary objectForKey:@"userAccessKeys"];
    if(userAccessKeysArray&&![userAccessKeysArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [userAccessKeysArray count];i++)
        {
        UserAccessKey* item = [[UserAccessKey alloc]initWithDic:[userAccessKeysArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.userAccessKeys = propertyArray;
    }
    return self;
} 

@end
@implementation IamDeleteUserAccessKeyResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation IamDeleteUserAccessKeyResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDeleteUserAccessKeyResult* result = [[IamDeleteUserAccessKeyResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDeleteUserAccessKeyResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
  
@implementation IamDescribeUserAccessKeysResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDescribeUserAccessKeysResult* result = [[IamDescribeUserAccessKeysResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDescribeUserAccessKeysResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
  
@implementation IamEnabledUserAccessKeyResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamEnabledUserAccessKeyResult* result = [[IamEnabledUserAccessKeyResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamEnabledUserAccessKeyResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamDescribeAttachedGroupPoliciesResult
-(id) initWithTotal:(NSNumber*) total
        policies:(NSArray<Policy*>*)policies { 
    self.total = total;               
    self.policies = policies;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self total])
    {
        [result setValue:[self total] forKey:@"total"];
    }
    if([self policies])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self policies] count]; i++) {
            Policy* item = [[self policies] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"policies"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.total = [dictionary objectForKey:@"total"];
    NSArray* policiesArray = [dictionary objectForKey:@"policies"];
    if(policiesArray&&![policiesArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [policiesArray count];i++)
        {
        Policy* item = [[Policy alloc]initWithDic:[policiesArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.policies = propertyArray;
    }
    return self;
} 

@end
  
@implementation IamDescribeAttachedGroupPoliciesResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDescribeAttachedGroupPoliciesResult* result = [[IamDescribeAttachedGroupPoliciesResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDescribeAttachedGroupPoliciesResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamDetachGroupPolicyResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation IamDetachGroupPolicyResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDetachGroupPolicyResult* result = [[IamDetachGroupPolicyResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDetachGroupPolicyResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamDescribeGroupResult
-(id) initWithGroup:(GroupDetail*) group { 
    self.group = group;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self group])
    {
        [result setValue:[[self group] dictionary]forKey:@"group"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.group = [[GroupDetail alloc]initWithDic:[dictionary objectForKey:@"group"]];
    return self;
} 

@end
@implementation IamUpdateGroupResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
@implementation IamDescribeGroupSubUsersResult
-(id) initWithTotal:(NSNumber*) total
        subUsers:(NSArray<SubUserInfo*>*)subUsers { 
    self.total = total;               
    self.subUsers = subUsers;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self total])
    {
        [result setValue:[self total] forKey:@"total"];
    }
    if([self subUsers])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self subUsers] count]; i++) {
            SubUserInfo* item = [[self subUsers] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"subUsers"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.total = [dictionary objectForKey:@"total"];
    NSArray* subUsersArray = [dictionary objectForKey:@"subUsers"];
    if(subUsersArray&&![subUsersArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [subUsersArray count];i++)
        {
        SubUserInfo* item = [[SubUserInfo alloc]initWithDic:[subUsersArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.subUsers = propertyArray;
    }
    return self;
} 

@end
@implementation IamDescribeGroupsResult
-(id) initWithTotal:(NSNumber*) total
        groups:(NSArray<Group*>*)groups { 
    self.total = total;               
    self.groups = groups;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self total])
    {
        [result setValue:[self total] forKey:@"total"];
    }
    if([self groups])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self groups] count]; i++) {
            Group* item = [[self groups] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"groups"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.total = [dictionary objectForKey:@"total"];
    NSArray* groupsArray = [dictionary objectForKey:@"groups"];
    if(groupsArray&&![groupsArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [groupsArray count];i++)
        {
        Group* item = [[Group alloc]initWithDic:[groupsArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.groups = propertyArray;
    }
    return self;
} 

@end
  
@implementation IamDescribeGroupsResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDescribeGroupsResult* result = [[IamDescribeGroupsResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDescribeGroupsResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamCreateGroupResult
-(id) initWithGroup:(CreateGroupRes*) group { 
    self.group = group;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self group])
    {
        [result setValue:[[self group] dictionary]forKey:@"group"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.group = [[CreateGroupRes alloc]initWithDic:[dictionary objectForKey:@"group"]];
    return self;
} 

@end
  
@implementation IamCreateGroupResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamCreateGroupResult* result = [[IamCreateGroupResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamCreateGroupResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamAddSubUserToGroupResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation IamAddSubUserToGroupResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamAddSubUserToGroupResult* result = [[IamAddSubUserToGroupResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamAddSubUserToGroupResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamUpdateGroupRequest
-(id) initWithRegion:(NSString *)regionId
updateGroupInfo:(UpdateGroupInfo*)updateGroupInfo
groupName:(NSString*)groupName { 
    self.regionId = regionId;
    self.updateGroupInfo = updateGroupInfo;
    self.groupName = groupName;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
updateGroupInfo:(UpdateGroupInfo*)updateGroupInfo
groupName:(NSString*)groupName { 
    self.regionId = regionId;
    self.version = version;
    self.updateGroupInfo = updateGroupInfo;
    self.groupName = groupName;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self updateGroupInfo])
    {
        [result setValue:[[self updateGroupInfo] dictionary]forKey:@"updateGroupInfo"];
    }
    if([self groupName])
    {
        [result setValue:[self groupName] forKey:@"groupName"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.updateGroupInfo = [[UpdateGroupInfo alloc]initWithDic:[dictionary objectForKey:@"updateGroupInfo"]];
    self.groupName = [dictionary objectForKey:@"groupName"];
    return self;
} 

@end
  
@implementation IamDescribeGroupSubUsersResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDescribeGroupSubUsersResult* result = [[IamDescribeGroupSubUsersResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDescribeGroupSubUsersResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamAttachGroupPolicyResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation IamAttachGroupPolicyResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamAttachGroupPolicyResult* result = [[IamAttachGroupPolicyResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamAttachGroupPolicyResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
  
@implementation IamUpdateGroupResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamUpdateGroupResult* result = [[IamUpdateGroupResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamUpdateGroupResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamDeleteGroupResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
@implementation IamRemoveSubUserFromGroupResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation IamRemoveSubUserFromGroupResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamRemoveSubUserFromGroupResult* result = [[IamRemoveSubUserFromGroupResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamRemoveSubUserFromGroupResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamCreateGroupRequest
-(id) initWithRegion:(NSString *)regionId
createGroupInfo:(CreateGroupInfo*)createGroupInfo { 
    self.regionId = regionId;
    self.createGroupInfo = createGroupInfo;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
createGroupInfo:(CreateGroupInfo*)createGroupInfo { 
    self.regionId = regionId;
    self.version = version;
    self.createGroupInfo = createGroupInfo;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self createGroupInfo])
    {
        [result setValue:[[self createGroupInfo] dictionary]forKey:@"createGroupInfo"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.createGroupInfo = [[CreateGroupInfo alloc]initWithDic:[dictionary objectForKey:@"createGroupInfo"]];
    return self;
} 

@end
  
@implementation IamDeleteGroupResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDeleteGroupResult* result = [[IamDeleteGroupResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDeleteGroupResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
  
@implementation IamDescribeGroupResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDescribeGroupResult* result = [[IamDescribeGroupResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDescribeGroupResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamCreateSubUserResult
-(id) initWithSubUser:(CreateSubUserRes*) subUser { 
    self.subUser = subUser;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self subUser])
    {
        [result setValue:[[self subUser] dictionary]forKey:@"subUser"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.subUser = [[CreateSubUserRes alloc]initWithDic:[dictionary objectForKey:@"subUser"]];
    return self;
} 

@end
@implementation IamDescribeAttachedSubUserPoliciesResult
-(id) initWithTotal:(NSNumber*) total
        policies:(NSArray<Policy*>*)policies { 
    self.total = total;               
    self.policies = policies;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self total])
    {
        [result setValue:[self total] forKey:@"total"];
    }
    if([self policies])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self policies] count]; i++) {
            Policy* item = [[self policies] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"policies"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.total = [dictionary objectForKey:@"total"];
    NSArray* policiesArray = [dictionary objectForKey:@"policies"];
    if(policiesArray&&![policiesArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [policiesArray count];i++)
        {
        Policy* item = [[Policy alloc]initWithDic:[policiesArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.policies = propertyArray;
    }
    return self;
} 

@end
  
@implementation IamDescribeAttachedSubUserPoliciesResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDescribeAttachedSubUserPoliciesResult* result = [[IamDescribeAttachedSubUserPoliciesResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDescribeAttachedSubUserPoliciesResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamDeleteSubUserResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation IamDeleteSubUserResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDeleteSubUserResult* result = [[IamDeleteSubUserResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDeleteSubUserResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamDescribeSubUsersResult
-(id) initWithSubUsers:(NSArray<SubUser*>*) subUsers
        total:(NSNumber*)total { 
    self.subUsers = subUsers;               
    self.total = total;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self subUsers])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self subUsers] count]; i++) {
            SubUser* item = [[self subUsers] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"subUsers"];
    }
    if([self total])
    {
        [result setValue:[self total] forKey:@"total"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    NSArray* subUsersArray = [dictionary objectForKey:@"subUsers"];
    if(subUsersArray&&![subUsersArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [subUsersArray count];i++)
        {
        SubUser* item = [[SubUser alloc]initWithDic:[subUsersArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.subUsers = propertyArray;
    }
    self.total = [dictionary objectForKey:@"total"];
    return self;
} 

@end
  
@implementation IamDescribeSubUsersResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDescribeSubUsersResult* result = [[IamDescribeSubUsersResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDescribeSubUsersResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamDescribeSubUserGroupsResult
-(id) initWithGroups:(NSArray<GroupInfo*>*) groups
        total:(NSNumber*)total { 
    self.groups = groups;               
    self.total = total;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self groups])
    {
            NSMutableArray<NSDictionary*>* arrayDic  = [[NSMutableArray alloc] init];
            for (int i =0 ; i< [[self groups] count]; i++) {
            GroupInfo* item = [[self groups] objectAtIndex:i];
            [arrayDic addObject:[item dictionary]];
        }
        [result setValue:arrayDic forKey:@"groups"];
    }
    if([self total])
    {
        [result setValue:[self total] forKey:@"total"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    NSArray* groupsArray = [dictionary objectForKey:@"groups"];
    if(groupsArray&&![groupsArray isKindOfClass:[NSNull class]])
    {
        NSMutableArray* propertyArray = [[NSMutableArray alloc]init];
        for(int i = 0 ; i< [groupsArray count];i++)
        {
        GroupInfo* item = [[GroupInfo alloc]initWithDic:[groupsArray objectAtIndex:i]];
            if(item)
            {
            [propertyArray addObject:item];
            }
        }
        self.groups = propertyArray;
    }
    self.total = [dictionary objectForKey:@"total"];
    return self;
} 

@end
  
@implementation IamDescribeSubUserGroupsResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDescribeSubUserGroupsResult* result = [[IamDescribeSubUserGroupsResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDescribeSubUserGroupsResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamCreateSubUserRequest
-(id) initWithRegion:(NSString *)regionId
createSubUserInfo:(CreateSubUserInfo*)createSubUserInfo { 
    self.regionId = regionId;
    self.createSubUserInfo = createSubUserInfo;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
createSubUserInfo:(CreateSubUserInfo*)createSubUserInfo { 
    self.regionId = regionId;
    self.version = version;
    self.createSubUserInfo = createSubUserInfo;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self createSubUserInfo])
    {
        [result setValue:[[self createSubUserInfo] dictionary]forKey:@"createSubUserInfo"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.createSubUserInfo = [[CreateSubUserInfo alloc]initWithDic:[dictionary objectForKey:@"createSubUserInfo"]];
    return self;
} 

@end
@implementation IamUpdateSubUserResult
-(id) initWithSubUser:(CreateSubUserRes*) subUser { 
    self.subUser = subUser;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self subUser])
    {
        [result setValue:[[self subUser] dictionary]forKey:@"subUser"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.subUser = [[CreateSubUserRes alloc]initWithDic:[dictionary objectForKey:@"subUser"]];
    return self;
} 

@end
@implementation IamAttachSubUserPolicyResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation IamAttachSubUserPolicyResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamAttachSubUserPolicyResult* result = [[IamAttachSubUserPolicyResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamAttachSubUserPolicyResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamUpdateSubUserRequest
-(id) initWithRegion:(NSString *)regionId
updateSubUserInfo:(UpdateSubUserInfo*)updateSubUserInfo
subUser:(NSString*)subUser { 
    self.regionId = regionId;
    self.updateSubUserInfo = updateSubUserInfo;
    self.subUser = subUser;
    return self;
}

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
updateSubUserInfo:(UpdateSubUserInfo*)updateSubUserInfo
subUser:(NSString*)subUser { 
    self.regionId = regionId;
    self.version = version;
    self.updateSubUserInfo = updateSubUserInfo;
    self.subUser = subUser;
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    NSMutableDictionary *superObjectDic = [super dictionary];
    if(superObjectDic && [superObjectDic count]>0)
    {
        [result addEntriesFromDictionary:superObjectDic];
    }
    if([self updateSubUserInfo])
    {
        [result setValue:[[self updateSubUserInfo] dictionary]forKey:@"updateSubUserInfo"];
    }
    if([self subUser])
    {
        [result setValue:[self subUser] forKey:@"subUser"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.updateSubUserInfo = [[UpdateSubUserInfo alloc]initWithDic:[dictionary objectForKey:@"updateSubUserInfo"]];
    self.subUser = [dictionary objectForKey:@"subUser"];
    return self;
} 

@end
@implementation IamDetachSubUserPolicyResult
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    return self;
} 

@end
  
@implementation IamDetachSubUserPolicyResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDetachSubUserPolicyResult* result = [[IamDetachSubUserPolicyResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDetachSubUserPolicyResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
@implementation IamDescribeSubUserResult
-(id) initWithSubUser:(SubUser*) subUser { 
    self.subUser = subUser;               
    return self;
}
-(NSMutableDictionary*) dictionary{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init];
    if([self subUser])
    {
        [result setValue:[[self subUser] dictionary]forKey:@"subUser"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary{
    self.subUser = [[SubUser alloc]initWithDic:[dictionary objectForKey:@"subUser"]];
    return self;
} 

@end
  
@implementation IamDescribeSubUserResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamDescribeSubUserResult* result = [[IamDescribeSubUserResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamDescribeSubUserResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
  
@implementation IamUpdateSubUserResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamUpdateSubUserResult* result = [[IamUpdateSubUserResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamUpdateSubUserResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
  
@implementation IamCreateSubUserResponse
-(NSMutableDictionary*) dictionary
{
    NSMutableDictionary* result = [[NSMutableDictionary alloc] init]; 
    if([self requestId])
    {
        [result setValue:[self requestId] forKey:@"requestId"];
    } 
    if([self result])
    {
        
        [result setValue:[[self result] dictionary] forKey:@"result"];
    }
    if([self error])
    {
        
        [result setValue:[[self error] dictionary] forKey:@"error"];
    }
    return result;
}

-(id) initWithDic:(NSDictionary*)dictionary
{
    
    self.requestId = [dictionary objectForKey:@"requestId"];
IamCreateSubUserResult* result = [[IamCreateSubUserResult alloc]initWithDic:[dictionary objectForKey:@"result"]];
    self.result = result;
    ServiceError* error = [[ServiceError alloc]initWithDic:[dictionary objectForKey:@"error"]];
    self.error = error;
    return self;
}

-(id) initWithRequestId:(NSString*) requestId
                  error:(ServiceError*) error
                 result:(IamCreateSubUserResult*) result
{
    self.error = error;
    self.result =result;
    self.requestId = requestId;
    return self;
}

@end
 
